package com.hare.system_server.serice;


import com.baomidou.mybatisplus.extension.service.IService;
import com.hare.system_api.dto.SysMenuDTO;
import com.hare.system_api.po.SysCategoryMenu;
import com.hare.system_api.vo.MenuTreeVO;
import com.hare.system_api.vo.RoutesVO;
import com.hare.system_api.vo.SysMenuVO;


import java.util.List;
import java.util.Set;


/**
 * @program: Hare
 * @description: 后台管理=>菜单 service
 * @author: Hare
 * @create: 2022-12-07 21:01
 * @Version 6.0.1
 **/
public interface SysMenuService extends IService<SysCategoryMenu> {


    /**
     * 根据userID查询菜单
     *
     * @param userId 用户ID
     * @return 菜单列表
     */
    public List<SysMenuVO> selectMenuTreeByUserId(String userId);


    /**
     * 组装前端路由信息
     *
     * @param menu 菜单信息
     * @return
     */
    public List<RoutesVO> getRoutesTree(List<SysMenuVO> menu);


    /**
     * 根据用户id 查询权限
     *
     * @param userId 用户id
     * @return
     */
    public Set<String> selectPreGetByUserId(String userId);


    /**
     * 查询菜单下拉框列表
     *
     * @param sysMenuDTO 菜单信息
     * @return 菜单数据源
     */
    public List<MenuTreeVO> selectMenuTreeList(SysMenuDTO sysMenuDTO);


    /**
     * 根据角色id查询关联菜单
     *
     * @param roleId 角色id
     * @return 菜单id数据
     */
    List<String> getMenuListByRoleId(String roleId);

}
